{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "tQBbEpkJvkrl"
   },
   "source": [
    "## DeepSEE: Deep Disentangled Semantic Explorative Extreme Super-Resolution"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "XeZyC1wPvkrm"
   },
   "source": [
    "This is a demo for our paper **Deep Disentangled Semantic Explorative Extreme Super-Resolution** ([ACCV 2020](http://accv2020.kyoto/) oral). \n",
    "\n",
    "Please check out our [project page](https://mcbuehler.github.io/DeepSEE/) for details and the paper."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "fty4_HKqrr4d"
   },
   "source": [
    "## Setup\n",
    "You can follow the steps below to set up the demo from scratch. \n",
    "\n",
    "Make sure to use a GPU runtime:\n",
    "`Runtime -> Change runtime type -> GPU`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 2536,
     "status": "ok",
     "timestamp": 1606292132720,
     "user": {
      "displayName": "Marcel Bühler",
      "photoUrl": "",
      "userId": "14997579963212771868"
     },
     "user_tz": -60
    },
    "id": "4VTFt0kOwE4W",
    "outputId": "016c3e61-7142-4d65-f15b-2923d62ca60b"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Cloning into 'DeepSEE'...\n",
      "remote: Enumerating objects: 357, done.\u001b[K\n",
      "remote: Counting objects: 100% (357/357), done.\u001b[K\n",
      "remote: Compressing objects: 100% (262/262), done.\u001b[K\n",
      "remote: Total 357 (delta 132), reused 307 (delta 87), pack-reused 0\u001b[K\n",
      "Receiving objects: 100% (357/357), 6.34 MiB | 18.98 MiB/s, done.\n",
      "Resolving deltas: 100% (132/132), done.\n"
     ]
    }
   ],
   "source": [
    "!git clone https://github.com/mcbuehler/DeepSEE"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 1000
    },
    "executionInfo": {
     "elapsed": 15835,
     "status": "ok",
     "timestamp": 1606292153929,
     "user": {
      "displayName": "Marcel Bühler",
      "photoUrl": "",
      "userId": "14997579963212771868"
     },
     "user_tz": -60
    },
    "id": "Syp4YHMdwRBI",
    "outputId": "862e67d8-a8dd-4e39-ad95-5c3bc0b088e4"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Collecting wrapt==1.12.0\n",
      "  Downloading https://files.pythonhosted.org/packages/ee/bc/7993faa8084b5a5dbabb07a197ae1b7590da4752dc80455d878573553e2f/wrapt-1.12.0.tar.gz\n",
      "Requirement already satisfied: torch>=1.0.0 in /usr/local/lib/python3.6/dist-packages (from -r DeepSEE/requirements.txt (line 2)) (1.7.0+cu101)\n",
      "Requirement already satisfied: torchvision in /usr/local/lib/python3.6/dist-packages (from -r DeepSEE/requirements.txt (line 3)) (0.8.1+cu101)\n",
      "Requirement already satisfied: dill in /usr/local/lib/python3.6/dist-packages (from -r DeepSEE/requirements.txt (line 4)) (0.3.3)\n",
      "Requirement already satisfied: pandas>=0.24.2 in /usr/local/lib/python3.6/dist-packages (from -r DeepSEE/requirements.txt (line 5)) (1.1.4)\n",
      "Requirement already satisfied: scikit-image>=0.15.0 in /usr/local/lib/python3.6/dist-packages (from -r DeepSEE/requirements.txt (line 6)) (0.16.2)\n",
      "Collecting tqdm==4.40.0\n",
      "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/a5/13/cd55c23e3e158ed5b87cae415ee3844fc54cb43803fa3a0a064d23ecb883/tqdm-4.40.0-py2.py3-none-any.whl (54kB)\n",
      "\u001b[K     |████████████████████████████████| 61kB 6.7MB/s \n",
      "\u001b[?25hCollecting facenet-pytorch==2.1.1\n",
      "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/f6/95/55cd29c3de12df643f29a995046ca2a517d585358cef1acfee1d7a97a2f5/facenet_pytorch-2.1.1-py3-none-any.whl (1.9MB)\n",
      "\u001b[K     |████████████████████████████████| 1.9MB 17.2MB/s \n",
      "\u001b[?25hCollecting IPython==7.9.0\n",
      "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/81/2e/59cdacea6476a4c21b7c090a91250ffbcd085900f5eb9f4e4d68dd2ee4e3/ipython-7.9.0-py3-none-any.whl (775kB)\n",
      "\u001b[K     |████████████████████████████████| 778kB 42.1MB/s \n",
      "\u001b[?25hCollecting opencv-python==4.1.1.26\n",
      "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/5e/7e/bd5425f4dacb73367fddc71388a47c1ea570839197c2bcad86478e565186/opencv_python-4.1.1.26-cp36-cp36m-manylinux1_x86_64.whl (28.7MB)\n",
      "\u001b[K     |████████████████████████████████| 28.7MB 112kB/s \n",
      "\u001b[?25hCollecting GPUtil==1.4.0\n",
      "  Downloading https://files.pythonhosted.org/packages/ed/0e/5c61eedde9f6c87713e89d794f01e378cfd9565847d4576fa627d758c554/GPUtil-1.4.0.tar.gz\n",
      "Collecting dominate==2.5.2\n",
      "  Downloading https://files.pythonhosted.org/packages/c0/03/1ba70425be63f2aab42fbc98894fe5d90cdadd41f79bdc778b3e404cfd8f/dominate-2.5.2-py2.py3-none-any.whl\n",
      "Requirement already satisfied: jupyter==1.0.0 in /usr/local/lib/python3.6/dist-packages (from -r DeepSEE/requirements.txt (line 13)) (1.0.0)\n",
      "Requirement already satisfied: dataclasses in /usr/local/lib/python3.6/dist-packages (from torch>=1.0.0->-r DeepSEE/requirements.txt (line 2)) (0.8)\n",
      "Requirement already satisfied: future in /usr/local/lib/python3.6/dist-packages (from torch>=1.0.0->-r DeepSEE/requirements.txt (line 2)) (0.16.0)\n",
      "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.6/dist-packages (from torch>=1.0.0->-r DeepSEE/requirements.txt (line 2)) (3.7.4.3)\n",
      "Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from torch>=1.0.0->-r DeepSEE/requirements.txt (line 2)) (1.18.5)\n",
      "Requirement already satisfied: pillow>=4.1.1 in /usr/local/lib/python3.6/dist-packages (from torchvision->-r DeepSEE/requirements.txt (line 3)) (7.0.0)\n",
      "Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.6/dist-packages (from pandas>=0.24.2->-r DeepSEE/requirements.txt (line 5)) (2018.9)\n",
      "Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.6/dist-packages (from pandas>=0.24.2->-r DeepSEE/requirements.txt (line 5)) (2.8.1)\n",
      "Requirement already satisfied: scipy>=0.19.0 in /usr/local/lib/python3.6/dist-packages (from scikit-image>=0.15.0->-r DeepSEE/requirements.txt (line 6)) (1.4.1)\n",
      "Requirement already satisfied: PyWavelets>=0.4.0 in /usr/local/lib/python3.6/dist-packages (from scikit-image>=0.15.0->-r DeepSEE/requirements.txt (line 6)) (1.1.1)\n",
      "Requirement already satisfied: imageio>=2.3.0 in /usr/local/lib/python3.6/dist-packages (from scikit-image>=0.15.0->-r DeepSEE/requirements.txt (line 6)) (2.4.1)\n",
      "Requirement already satisfied: matplotlib!=3.0.0,>=2.0.0 in /usr/local/lib/python3.6/dist-packages (from scikit-image>=0.15.0->-r DeepSEE/requirements.txt (line 6)) (3.2.2)\n",
      "Requirement already satisfied: networkx>=2.0 in /usr/local/lib/python3.6/dist-packages (from scikit-image>=0.15.0->-r DeepSEE/requirements.txt (line 6)) (2.5)\n",
      "Requirement already satisfied: requests in /usr/local/lib/python3.6/dist-packages (from facenet-pytorch==2.1.1->-r DeepSEE/requirements.txt (line 8)) (2.23.0)\n",
      "Requirement already satisfied: jedi>=0.10 in /usr/local/lib/python3.6/dist-packages (from IPython==7.9.0->-r DeepSEE/requirements.txt (line 9)) (0.17.2)\n",
      "Requirement already satisfied: traitlets>=4.2 in /usr/local/lib/python3.6/dist-packages (from IPython==7.9.0->-r DeepSEE/requirements.txt (line 9)) (4.3.3)\n",
      "Requirement already satisfied: setuptools>=18.5 in /usr/local/lib/python3.6/dist-packages (from IPython==7.9.0->-r DeepSEE/requirements.txt (line 9)) (50.3.2)\n",
      "Requirement already satisfied: pickleshare in /usr/local/lib/python3.6/dist-packages (from IPython==7.9.0->-r DeepSEE/requirements.txt (line 9)) (0.7.5)\n",
      "Collecting prompt-toolkit<2.1.0,>=2.0.0\n",
      "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/87/61/2dfea88583d5454e3a64f9308a686071d58d59a55db638268a6413e1eb6d/prompt_toolkit-2.0.10-py3-none-any.whl (340kB)\n",
      "\u001b[K     |████████████████████████████████| 348kB 51.5MB/s \n",
      "\u001b[?25hRequirement already satisfied: backcall in /usr/local/lib/python3.6/dist-packages (from IPython==7.9.0->-r DeepSEE/requirements.txt (line 9)) (0.2.0)\n",
      "Requirement already satisfied: pygments in /usr/local/lib/python3.6/dist-packages (from IPython==7.9.0->-r DeepSEE/requirements.txt (line 9)) (2.6.1)\n",
      "Requirement already satisfied: pexpect; sys_platform != \"win32\" in /usr/local/lib/python3.6/dist-packages (from IPython==7.9.0->-r DeepSEE/requirements.txt (line 9)) (4.8.0)\n",
      "Requirement already satisfied: decorator in /usr/local/lib/python3.6/dist-packages (from IPython==7.9.0->-r DeepSEE/requirements.txt (line 9)) (4.4.2)\n",
      "Requirement already satisfied: nbconvert in /usr/local/lib/python3.6/dist-packages (from jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (5.6.1)\n",
      "Requirement already satisfied: ipywidgets in /usr/local/lib/python3.6/dist-packages (from jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (7.5.1)\n",
      "Requirement already satisfied: qtconsole in /usr/local/lib/python3.6/dist-packages (from jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (4.7.7)\n",
      "Requirement already satisfied: notebook in /usr/local/lib/python3.6/dist-packages (from jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (5.3.1)\n",
      "Requirement already satisfied: jupyter-console in /usr/local/lib/python3.6/dist-packages (from jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (5.2.0)\n",
      "Requirement already satisfied: ipykernel in /usr/local/lib/python3.6/dist-packages (from jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (4.10.1)\n",
      "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.6/dist-packages (from python-dateutil>=2.7.3->pandas>=0.24.2->-r DeepSEE/requirements.txt (line 5)) (1.15.0)\n",
      "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.6/dist-packages (from matplotlib!=3.0.0,>=2.0.0->scikit-image>=0.15.0->-r DeepSEE/requirements.txt (line 6)) (0.10.0)\n",
      "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib!=3.0.0,>=2.0.0->scikit-image>=0.15.0->-r DeepSEE/requirements.txt (line 6)) (1.3.1)\n",
      "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib!=3.0.0,>=2.0.0->scikit-image>=0.15.0->-r DeepSEE/requirements.txt (line 6)) (2.4.7)\n",
      "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.6/dist-packages (from requests->facenet-pytorch==2.1.1->-r DeepSEE/requirements.txt (line 8)) (2.10)\n",
      "Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.6/dist-packages (from requests->facenet-pytorch==2.1.1->-r DeepSEE/requirements.txt (line 8)) (3.0.4)\n",
      "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.6/dist-packages (from requests->facenet-pytorch==2.1.1->-r DeepSEE/requirements.txt (line 8)) (1.24.3)\n",
      "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.6/dist-packages (from requests->facenet-pytorch==2.1.1->-r DeepSEE/requirements.txt (line 8)) (2020.11.8)\n",
      "Requirement already satisfied: parso<0.8.0,>=0.7.0 in /usr/local/lib/python3.6/dist-packages (from jedi>=0.10->IPython==7.9.0->-r DeepSEE/requirements.txt (line 9)) (0.7.1)\n",
      "Requirement already satisfied: ipython-genutils in /usr/local/lib/python3.6/dist-packages (from traitlets>=4.2->IPython==7.9.0->-r DeepSEE/requirements.txt (line 9)) (0.2.0)\n",
      "Requirement already satisfied: wcwidth in /usr/local/lib/python3.6/dist-packages (from prompt-toolkit<2.1.0,>=2.0.0->IPython==7.9.0->-r DeepSEE/requirements.txt (line 9)) (0.2.5)\n",
      "Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.6/dist-packages (from pexpect; sys_platform != \"win32\"->IPython==7.9.0->-r DeepSEE/requirements.txt (line 9)) (0.6.0)\n",
      "Requirement already satisfied: nbformat>=4.4 in /usr/local/lib/python3.6/dist-packages (from nbconvert->jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (5.0.8)\n",
      "Requirement already satisfied: mistune<2,>=0.8.1 in /usr/local/lib/python3.6/dist-packages (from nbconvert->jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (0.8.4)\n",
      "Requirement already satisfied: testpath in /usr/local/lib/python3.6/dist-packages (from nbconvert->jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (0.4.4)\n",
      "Requirement already satisfied: entrypoints>=0.2.2 in /usr/local/lib/python3.6/dist-packages (from nbconvert->jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (0.3)\n",
      "Requirement already satisfied: defusedxml in /usr/local/lib/python3.6/dist-packages (from nbconvert->jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (0.6.0)\n",
      "Requirement already satisfied: jinja2>=2.4 in /usr/local/lib/python3.6/dist-packages (from nbconvert->jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (2.11.2)\n",
      "Requirement already satisfied: pandocfilters>=1.4.1 in /usr/local/lib/python3.6/dist-packages (from nbconvert->jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (1.4.3)\n",
      "Requirement already satisfied: jupyter-core in /usr/local/lib/python3.6/dist-packages (from nbconvert->jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (4.7.0)\n",
      "Requirement already satisfied: bleach in /usr/local/lib/python3.6/dist-packages (from nbconvert->jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (3.2.1)\n",
      "Requirement already satisfied: widgetsnbextension~=3.5.0 in /usr/local/lib/python3.6/dist-packages (from ipywidgets->jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (3.5.1)\n",
      "Requirement already satisfied: pyzmq>=17.1 in /usr/local/lib/python3.6/dist-packages (from qtconsole->jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (20.0.0)\n",
      "Requirement already satisfied: jupyter-client>=4.1 in /usr/local/lib/python3.6/dist-packages (from qtconsole->jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (5.3.5)\n",
      "Requirement already satisfied: qtpy in /usr/local/lib/python3.6/dist-packages (from qtconsole->jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (1.9.0)\n",
      "Requirement already satisfied: tornado>=4 in /usr/local/lib/python3.6/dist-packages (from notebook->jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (5.1.1)\n",
      "Requirement already satisfied: terminado>=0.8.1 in /usr/local/lib/python3.6/dist-packages (from notebook->jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (0.9.1)\n",
      "Requirement already satisfied: Send2Trash in /usr/local/lib/python3.6/dist-packages (from notebook->jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (1.5.0)\n",
      "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /usr/local/lib/python3.6/dist-packages (from nbformat>=4.4->nbconvert->jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (2.6.0)\n",
      "Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib/python3.6/dist-packages (from jinja2>=2.4->nbconvert->jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (1.1.1)\n",
      "Requirement already satisfied: webencodings in /usr/local/lib/python3.6/dist-packages (from bleach->nbconvert->jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (0.5.1)\n",
      "Requirement already satisfied: packaging in /usr/local/lib/python3.6/dist-packages (from bleach->nbconvert->jupyter==1.0.0->-r DeepSEE/requirements.txt (line 13)) (20.4)\n",
      "Building wheels for collected packages: wrapt, GPUtil\n",
      "  Building wheel for wrapt (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
      "  Created wheel for wrapt: filename=wrapt-1.12.0-cp36-cp36m-linux_x86_64.whl size=67508 sha256=8550530dc4816ea8b5db49a871f00fb1cc21c323759b7f3d53b461fdfa8b3b2e\n",
      "  Stored in directory: /root/.cache/pip/wheels/54/f9/95/099544e9f879f719b14cf567fabb5aa7984263df0f025f3eef\n",
      "  Building wheel for GPUtil (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
      "  Created wheel for GPUtil: filename=GPUtil-1.4.0-cp36-none-any.whl size=7411 sha256=4f3ada1c562bb778837206793cadc66c70301d701b1110012b1569410f4dae0a\n",
      "  Stored in directory: /root/.cache/pip/wheels/3d/77/07/80562de4bb0786e5ea186911a2c831fdd0018bda69beab71fd\n",
      "Successfully built wrapt GPUtil\n",
      "\u001b[31mERROR: jupyter-console 5.2.0 has requirement prompt-toolkit<2.0.0,>=1.0.0, but you'll have prompt-toolkit 2.0.10 which is incompatible.\u001b[0m\n",
      "\u001b[31mERROR: google-colab 1.0.0 has requirement ipython~=5.5.0, but you'll have ipython 7.9.0 which is incompatible.\u001b[0m\n",
      "\u001b[31mERROR: albumentations 0.1.12 has requirement imgaug<0.2.7,>=0.2.5, but you'll have imgaug 0.2.9 which is incompatible.\u001b[0m\n",
      "Installing collected packages: wrapt, tqdm, facenet-pytorch, prompt-toolkit, IPython, opencv-python, GPUtil, dominate\n",
      "  Found existing installation: wrapt 1.12.1\n",
      "    Uninstalling wrapt-1.12.1:\n",
      "      Successfully uninstalled wrapt-1.12.1\n",
      "  Found existing installation: tqdm 4.41.1\n",
      "    Uninstalling tqdm-4.41.1:\n",
      "      Successfully uninstalled tqdm-4.41.1\n",
      "  Found existing installation: prompt-toolkit 1.0.18\n",
      "    Uninstalling prompt-toolkit-1.0.18:\n",
      "      Successfully uninstalled prompt-toolkit-1.0.18\n",
      "  Found existing installation: ipython 5.5.0\n",
      "    Uninstalling ipython-5.5.0:\n",
      "      Successfully uninstalled ipython-5.5.0\n",
      "  Found existing installation: opencv-python 4.1.2.30\n",
      "    Uninstalling opencv-python-4.1.2.30:\n",
      "      Successfully uninstalled opencv-python-4.1.2.30\n",
      "Successfully installed GPUtil-1.4.0 IPython-7.9.0 dominate-2.5.2 facenet-pytorch-2.1.1 opencv-python-4.1.1.26 prompt-toolkit-2.0.10 tqdm-4.40.0 wrapt-1.12.0\n"
     ]
    },
    {
     "data": {
      "application/vnd.colab-display-data+json": {
       "pip_warning": {
        "packages": [
         "IPython",
         "prompt_toolkit"
        ]
       }
      }
     },
     "metadata": {
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "!pip install -r DeepSEE/requirements.txt;"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "ZETHlIbCefGA"
   },
   "source": [
    "If you are asked to restart your runtime, please do so."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "ICKrv2W6ybb4"
   },
   "outputs": [],
   "source": [
    "import os\n",
    "os.chdir(\"DeepSEE\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 524,
     "status": "ok",
     "timestamp": 1606294890421,
     "user": {
      "displayName": "Marcel Bühler",
      "photoUrl": "",
      "userId": "14997579963212771868"
     },
     "user_tz": -60
    },
    "id": "jGxqWyXPwERZ",
    "outputId": "23fddb30-241a-4000-8441-90434a2fe944"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Drive already mounted at /content/gdrive; to attempt to forcibly remount, call drive.mount(\"/content/gdrive\", force_remount=True).\n"
     ]
    }
   ],
   "source": [
    "from google.colab import drive\n",
    "drive.mount('/content/gdrive')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "xBsmbrvzwsdc"
   },
   "source": [
    "**Add** this folder to your Google Drive. It contains the pre-trained checkpoints and some ready-to-use data samples.\n",
    "\n",
    "https://drive.google.com/drive/folders/1pVwxpln-lame79yGYPgFA1KvV2iXT_I2?usp=sharing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "WwwdeZfwvkrm"
   },
   "outputs": [],
   "source": [
    "from demo import Demo, get_demo_options, display_result\n",
    "from util.util import display_regions\n",
    "import torch\n",
    "import numpy as np\n",
    "torch.manual_seed(0)\n",
    "np.random.seed(0)\n",
    "\n",
    "base_path = \"/content/gdrive/My Drive/DeepSEE_data/demo_data/\"\n",
    "checkpoints_dir = \"/content/gdrive/My Drive/DeepSEE_data/checkpoints\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "TMLNJaN6vkrm"
   },
   "source": [
    "## Method\n",
    "\n",
    "A low-resolution input ($x_{lr} \\in \\mathbb{R}^{H_{lr}\\times{W_{lr}}\\times{3}}$) image acts as a starting point that carries the low-frequency information. A generator ($G_{\\Theta}$) upscales this image and hallucinates the high-frequencies yielding the high-resolution image $\\hat x_{hr} \\in \\mathbb{R}^{H_{hr}\\times{W_{hr}}\\times{3}}$. As a guidance, $G_{\\Theta}$ leverages both a high resolution semantic map ($M \\in \\mathbb{R}^{H_{hr}\\times{W_{hr}}\\times{N}}$, where $N$ is the number of the semantic regions) and independent styles per region ($S\\in\\mathbb{R}^{N\\times d}$, where $d$ is the style dimensionality). The upscaled image should thus retain the low-frequency information from the low-resolution image. In addition, it should be consistent in terms of the semantic regions and have specific, yet independent styles per region. We formally define our problem as\n",
    "\n",
    "$\\hat x_{hr} = G_{\\Theta}(x_{lr}, \\thinspace M, \\thinspace S)$\n",
    "\n",
    "A user is able to control the __appearance__ and __shape__ of each semantic region. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "PAKCfNOgl8xl"
   },
   "source": [
    "## Example Results on 8x Upscaling\n",
    "\n",
    "### Inference for the __Default__ Solution\n",
    "We upscale a low-resolution (16x16) image to a high-resolution (128x128). We call this the __default solution__.\n",
    "\n",
    "We provide these sample images from the [CelebA](http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html) dataset (bicubically downscaled to 16x16 pixels):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 711,
     "status": "ok",
     "timestamp": 1606295431504,
     "user": {
      "displayName": "Marcel Bühler",
      "photoUrl": "",
      "userId": "14997579963212771868"
     },
     "user_tz": -60
    },
    "id": "gW9xHg7ohsAj",
    "outputId": "d9ca2e95-df3b-475b-8b1a-6bb414bfb732"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['185232.png',\n",
       " '195804.png',\n",
       " '199152.png',\n",
       " '194600.png',\n",
       " '201892.png',\n",
       " '183306.png',\n",
       " '197579.png']"
      ]
     },
     "execution_count": 61,
     "metadata": {
      "tags": []
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dataset = \"CelebA\"\n",
    "os.listdir(os.path.join(base_path, dataset, \"image_16x16\"))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "a8Dj9xRsmYpf"
   },
   "source": [
    "For the __default solution__, the model requires two inputs:\n",
    "1. the low-resolution image $x_{lr}$ and \n",
    "2. a semantic mask $M$ (we predicted the semantic mask from the low-resolution image)\n",
    "\n",
    "The style matrix $S$ is predicted from the low-resolution image $x_{lr}$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "qDbP75OViymY"
   },
   "outputs": [],
   "source": [
    "opt = get_demo_options(\"8x_independent_128x128\")\n",
    "opt.checkpoints_dir = checkpoints_dir\n",
    "demo = Demo(opt)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 255,
     "referenced_widgets": [
      "74a6c7723b6b4d06ba20f5f0f57bd4ae",
      "ad91a21b1d3342b58cd6200f6000a004",
      "bb7c19e7ae1642b2b86b5485889486bf",
      "9c9107b318fa4c8f84b2f735bb4c3ebc",
      "83dca1df83404472b3d78ab37ca1588a",
      "92b1b1d26a834ea79635b556712b50ec",
      "25bc19637b4c400392bccdb0da77d633",
      "dcc9084313384a9882917f7b988d5c49",
      "dcf10ac13eba48c5a29f9e2f760f49c8"
     ]
    },
    "executionInfo": {
     "elapsed": 7624,
     "status": "ok",
     "timestamp": 1606295442593,
     "user": {
      "displayName": "Marcel Bühler",
      "photoUrl": "",
      "userId": "14997579963212771868"
     },
     "user_tz": -60
    },
    "id": "TvRAW3Ifi8Ll",
    "outputId": "7e865120-3823-40da-deb7-9ff89c10d3d1"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Encoding style from LR image...\n",
      "Style computed.\n",
      "Upscaling...\n",
      "Done.\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "74a6c7723b6b4d06ba20f5f0f57bd4ae",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "interactive(children=(Dropdown(description='Visualize:', index=1, options=('encoded_style', 'fake_image', 'ima…"
      ]
     },
     "metadata": {
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "filename = \"185232.png\"\n",
    "\n",
    "kwargs = {\n",
    "    \"name\": \"demo\",\n",
    "    \"path_image_lr\": os.path.join(base_path, dataset, \"image_16x16\", filename),\n",
    "    \"path_semantics\": os.path.join(base_path, dataset, \"predicted_labels\", filename)\n",
    "}\n",
    "result_default_solution = demo.run(**kwargs)\n",
    "display_result(result_default_solution, size=(128, 128))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "rolzxXc5mp-W"
   },
   "source": [
    "### Style Manipulations\n",
    "We can add random noise to generate multiple high-resolution variants. \n",
    "\n",
    "* Experiment by changing `delta` to make the effect stronger or weaker.\n",
    "* Choose to influence other/multiple semantic regions by changing/adding indices to `region`.\n",
    "* The style matrix (or rows thereof) can be computed from other high-resolution images (examples in the paper).\n",
    "* Rows in the style matrix can be interpolated (examples in the paper).\n",
    "\n",
    "Here is an overview of all available regions:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 9137,
     "status": "ok",
     "timestamp": 1606294899078,
     "user": {
      "displayName": "Marcel Bühler",
      "photoUrl": "",
      "userId": "14997579963212771868"
     },
     "user_tz": -60
    },
    "id": "a4pkSag-knj1",
    "outputId": "03475397-2014-454f-fd25-840b241caddb"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " 0: Background\n",
      " 1: Skin\n",
      " 2: Nose\n",
      " 3: Eyeglass\n",
      " 4: Left eye\n",
      " 5: Right eye\n",
      " 6: Left eyebrow\n",
      " 7: Right eyebrow\n",
      " 8: Left Ear\n",
      " 9: Right Ear\n",
      "10: Mouth\n",
      "11: Upper Lip\n",
      "12: Lower Lip\n",
      "13: Hair\n",
      "14: Hat\n",
      "15: Earring\n",
      "16: Necklace\n",
      "17: Neck\n",
      "18: Cloth\n"
     ]
    }
   ],
   "source": [
    "display_regions()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "rWPL2ce4nSTA"
   },
   "source": [
    "In the following example, we change the __lips__ adding noise to the corresponding rows in the style matrix."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 220,
     "referenced_widgets": [
      "789ca3a0912b4cb68c2ee06ae3e0e01f",
      "60a4a296af114763ab4c74f52259fda1",
      "68167ad6308548dea9a81906a49ea6a5",
      "0fa8da6ffbd448ce824a8af920ab5e6e",
      "eae639faf8804b11852b02d8eafda982",
      "45060d71bd304e24b00fd62c5ce4e26d",
      "375aca99f1964197aad08665bbb9f67f",
      "77f811206fcf404c9d9386210376d67d",
      "b9eeb93a5c77443f8e7fbe19e0dc1e4b"
     ]
    },
    "executionInfo": {
     "elapsed": 6999,
     "status": "ok",
     "timestamp": 1606295453269,
     "user": {
      "displayName": "Marcel Bühler",
      "photoUrl": "",
      "userId": "14997579963212771868"
     },
     "user_tz": -60
    },
    "id": "34VRgOmxjQ3j",
    "outputId": "abc96857-1090-4a70-fd23-a277f8068896"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Upscaling...\n",
      "Done.\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "789ca3a0912b4cb68c2ee06ae3e0e01f",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "interactive(children=(Dropdown(description='Visualize:', index=1, options=('encoded_style', 'fake_image', 'ima…"
      ]
     },
     "metadata": {
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "encoded_style_orig = result_default_solution[\"encoded_style\"].detach().clone()\n",
    "encoded_style_noisy = encoded_style_orig.clone()\n",
    "\n",
    "delta = 0.03\n",
    "region = [11, 12]  # Corresponds to the lips.\n",
    "\n",
    "# We add the same noise to both the upper and lower lip\n",
    "noise = torch.rand([1, encoded_style_orig.shape[2]]) * delta\n",
    "encoded_style_noisy[:, region, :] = (encoded_style_orig[:, region, :] + torch.stack([noise, noise], dim=1)).clamp(-1, 1)\n",
    "\n",
    "kwargs = {\n",
    "    \"name\": \"demo_style_manipulation\",\n",
    "    \"path_image_lr\": os.path.join(base_path, dataset, \"image_16x16\", filename),\n",
    "    \"path_semantics\": os.path.join(base_path, dataset, \"predicted_labels\", filename),\n",
    "    \"encoded_style\": encoded_style_noisy\n",
    "}\n",
    "result_stochastic = demo.run(**kwargs)\n",
    "display_result(result_stochastic, size=(128, 128))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "H9_INffSmkIF"
   },
   "source": [
    "Now let's also modify the __eyebrows__."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 220,
     "referenced_widgets": [
      "5fb541d5abf54d9d8e43756aa7485b3b",
      "6751eada61ec44ca9e32aa7e1f2f2e3c",
      "721e1507f1fc4877bf69723d00ca2632",
      "8ff72c9f24324d98b89bcb92160be0cf",
      "5c035f47c32540d3b72628c8e5fc4e4c",
      "f79b8b692011486e965cf1fb20a79cf8",
      "e547e306493f4741a8db9d22843cee8f",
      "39745ab9253c4cc7ac569998dd4dae82",
      "630895e41d3848e8bb16f12ebd51af49"
     ]
    },
    "executionInfo": {
     "elapsed": 7671,
     "status": "ok",
     "timestamp": 1606295568429,
     "user": {
      "displayName": "Marcel Bühler",
      "photoUrl": "",
      "userId": "14997579963212771868"
     },
     "user_tz": -60
    },
    "id": "_Zqo5foXlan9",
    "outputId": "5fbd32fa-755e-40a6-e811-bc96ec9a972c"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Upscaling...\n",
      "Done.\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "5fb541d5abf54d9d8e43756aa7485b3b",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "interactive(children=(Dropdown(description='Visualize:', index=1, options=('encoded_style', 'fake_image', 'ima…"
      ]
     },
     "metadata": {
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "encoded_style_orig = result_default_solution[\"encoded_style\"].detach().clone()\n",
    "encoded_style_noisy = encoded_style_orig.clone()\n",
    "\n",
    "delta = 0.03\n",
    "region = [6, 7]  # Corresponds to the eyesbrows.\n",
    "\n",
    "noise = torch.rand([1, encoded_style_orig.shape[2]]) * delta\n",
    "encoded_style_noisy[:, region, :] = (encoded_style_orig[:, region, :] + torch.stack([noise, noise], dim=1)).clamp(-1, 1)\n",
    "\n",
    "kwargs = {\n",
    "    \"name\": \"demo_style_manipulation\",\n",
    "    \"path_image_lr\": os.path.join(base_path, dataset, \"image_16x16\", filename),\n",
    "    \"path_semantics\": os.path.join(base_path, dataset, \"predicted_labels\", filename),\n",
    "    \"encoded_style\": encoded_style_noisy\n",
    "}\n",
    "result_stochastic = demo.run(**kwargs)\n",
    "display_result(result_stochastic, size=(128, 128))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "3ZZor58Cvkrm"
   },
   "source": [
    "## Example Results on 32x Upscaling\n",
    "\n",
    "We also provide a model for extreme upscaling from 16x16 to 512x512 pixels.\n",
    "\n",
    "Again, we provide ready-to-use examples. These sample are from the [CelebAMask-HQ](https://github.com/switchablenorms/CelebAMask-HQ) dataset (bicubically downscaled to 16x16 pixels):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 22522,
     "status": "ok",
     "timestamp": 1606294912482,
     "user": {
      "displayName": "Marcel Bühler",
      "photoUrl": "",
      "userId": "14997579963212771868"
     },
     "user_tz": -60
    },
    "id": "TzzCdv0Xvkrm",
    "outputId": "f33b5bd7-a368-41fb-93e2-19385767b895"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['14337.png', '28368.png', '19776.png']"
      ]
     },
     "execution_count": 51,
     "metadata": {
      "tags": []
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dataset = \"CelebAMask-HQ\"\n",
    "os.listdir(os.path.join(base_path, dataset, \"image_16x16\"))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "ajXqezZonzLj"
   },
   "outputs": [],
   "source": [
    "opt = get_demo_options(\"32x_independent\")\n",
    "opt.checkpoints_dir = checkpoints_dir\n",
    "demo_32x = Demo(opt)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 639,
     "referenced_widgets": [
      "1919b0ebbf0e4d4eab463392f7e348f6",
      "45b0b70669324f29b7c9705ab0736635",
      "c1a403b7221a40b7ae73dbfa0d669439",
      "0fecd1b4858e4827ae8deba4bc3ea434",
      "aba0b0b75af642b1b4242aa9a850d344",
      "9ba4ab36ce4b4f958d415e42fbf8df08",
      "8f41d6988ee5468db085d8f12e0f26ce",
      "e025974fb9d942aea5ede94bac7e67ec",
      "f8d612ccb544461388ba8f176d5615cf"
     ]
    },
    "executionInfo": {
     "elapsed": 105898,
     "status": "ok",
     "timestamp": 1606294995866,
     "user": {
      "displayName": "Marcel Bühler",
      "photoUrl": "",
      "userId": "14997579963212771868"
     },
     "user_tz": -60
    },
    "id": "lioVw6KYvkrn",
    "outputId": "f4491cbe-4a89-4d7c-f0e3-1aff00a71534"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Encoding style from LR image...\n",
      "Style computed.\n",
      "Upscaling...\n",
      "Done.\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "1919b0ebbf0e4d4eab463392f7e348f6",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "interactive(children=(Dropdown(description='Visualize:', index=1, options=('encoded_style', 'fake_image', 'ima…"
      ]
     },
     "metadata": {
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "filename = \"14337.png\"\n",
    "\n",
    "kwargs = {\n",
    "    \"name\": \"demo\",\n",
    "    \"path_image_lr\": os.path.join(base_path, dataset, \"image_16x16\", filename),\n",
    "    \"path_semantics\": os.path.join(base_path, dataset, \"predicted_labels\", filename)\n",
    "}\n",
    "result_default_solution = demo_32x.run(**kwargs)\n",
    "display_result(result_default_solution)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "QdskeWy-vkrn"
   },
   "source": [
    "### Semantic Manipulations\n",
    "We can repaint the semantic mask and run inference again. This yields different shapes in the upscaled image, but preserves the overall appearance."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 639,
     "referenced_widgets": [
      "9ba5cf95da744e9d9d679176d5b4bf0b",
      "56a3d958608a449da126db5ea7bc39cd",
      "fd6bbb1fbe914f5786c2ad26f90c6abd",
      "b476efa801764c0b9462a1fcf7a9a9b1",
      "c319d32dbfc54b7e978492c8785eaaf5",
      "391c398647c743679e1e52c8b2cfcf97",
      "7dddc5cff53f4ce39146f4983ee43241",
      "621c44f8a5444a109bd4cc3eddd8e463",
      "f6642236117c469baf0c28539241abde"
     ]
    },
    "executionInfo": {
     "elapsed": 187269,
     "status": "ok",
     "timestamp": 1606295077244,
     "user": {
      "displayName": "Marcel Bühler",
      "photoUrl": "",
      "userId": "14997579963212771868"
     },
     "user_tz": -60
    },
    "id": "bOJGbv7zvkrn",
    "outputId": "6c8ca4e3-ea03-4b1f-994a-3a7c54aa9954"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Encoding style from LR image...\n",
      "Style computed.\n",
      "Upscaling...\n",
      "Done.\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "9ba5cf95da744e9d9d679176d5b4bf0b",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "interactive(children=(Dropdown(description='Visualize:', index=1, options=('encoded_style', 'fake_image', 'ima…"
      ]
     },
     "metadata": {
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "kwargs = {\n",
    "    \"name\": \"demo_semantic_manipulation\",\n",
    "    \"path_image_lr\": os.path.join(base_path, dataset, \"image_16x16\", filename),\n",
    "    \"path_semantics\": os.path.join(base_path, dataset, \"manipulated_labels\", filename)\n",
    "}\n",
    "result_default_solution = demo_32x.run(**kwargs)\n",
    "display_result(result_default_solution)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "gtWjPoa-vkro"
   },
   "source": [
    "### Style Manipulations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 604,
     "referenced_widgets": [
      "801d1075a8344d3481e17986445f5d90",
      "0e5be9f80fbc44b683847cb270241e77",
      "ebc2aa2337eb4de19d4df912eba22dd1",
      "9b60358e588e458e90e90d11b53cad1c",
      "4333d0195da54d5dba42f77e06f853fa",
      "019473d6a8c44fd8981948d0e0659317",
      "b7e8e754511443fca9ba5a9a2ca60c89",
      "91993136f8404d77a672611dda44a4d8",
      "3d5d3e0db6ed4315abd642b90a0abb42"
     ]
    },
    "executionInfo": {
     "elapsed": 268278,
     "status": "ok",
     "timestamp": 1606295158260,
     "user": {
      "displayName": "Marcel Bühler",
      "photoUrl": "",
      "userId": "14997579963212771868"
     },
     "user_tz": -60
    },
    "id": "gFdJbV_fvkro",
    "outputId": "9065bf7f-ff7e-4b11-99d8-1aa9d765e0cb"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Upscaling...\n",
      "Done.\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "801d1075a8344d3481e17986445f5d90",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "interactive(children=(Dropdown(description='Visualize:', index=1, options=('encoded_style', 'fake_image', 'ima…"
      ]
     },
     "metadata": {
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "encoded_style_orig = result_default_solution[\"encoded_style\"].detach().clone()\n",
    "encoded_style_noisy = encoded_style_orig.clone()\n",
    "import torch\n",
    "delta = 0.15\n",
    "region = [1]  # Corresponds to the skin region.\n",
    "\n",
    "encoded_style_noisy[:, region, :] = (encoded_style_orig[:, region, :] + (torch.rand(encoded_style_orig[:, region, :].shape) * delta)).clamp(-1, 1)\n",
    "kwargs = {\n",
    "    \"name\": \"demo_style_manipulation\",\n",
    "    \"path_image_lr\": os.path.join(base_path, dataset, \"image_16x16\", filename),\n",
    "    \"path_semantics\": os.path.join(base_path, dataset, \"manipulated_labels\", filename),\n",
    "    \"encoded_style\": encoded_style_noisy\n",
    "}\n",
    "result = demo_32x.run(**kwargs)\n",
    "display_result(result)."
   ]
  }
 ],
 "metadata": {
  "accelerator": "GPU",
  "colab": {
   "collapsed_sections": [],
   "name": "Demo.ipynb",
   "provenance": [],
   "toc_visible": true
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "019473d6a8c44fd8981948d0e0659317": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "0e5be9f80fbc44b683847cb270241e77": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "0fa8da6ffbd448ce824a8af920ab5e6e": {
     "model_module": "@jupyter-widgets/output",
     "model_name": "OutputModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/output",
      "_model_module_version": "1.0.0",
      "_model_name": "OutputModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/output",
      "_view_module_version": "1.0.0",
      "_view_name": "OutputView",
      "layout": "IPY_MODEL_77f811206fcf404c9d9386210376d67d",
      "msg_id": "",
      "outputs": [
       {
        "application/vnd.jupyter.widget-view+json": {
         "model_id": "375aca99f1964197aad08665bbb9f67f",
         "version_major": 2,
         "version_minor": 0
        },
        "metadata": {
         "tags": []
        },
        "output_type": "display_data",
        "text/plain": "Image(value=b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIHDR\\x00\\x00\\x00\\x80\\x00\\x00\\x00\\x80\\x08\\x02\\x00\\x00\\x00L\\\\\\xf6\\x…"
       }
      ]
     }
    },
    "0fecd1b4858e4827ae8deba4bc3ea434": {
     "model_module": "@jupyter-widgets/output",
     "model_name": "OutputModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/output",
      "_model_module_version": "1.0.0",
      "_model_name": "OutputModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/output",
      "_view_module_version": "1.0.0",
      "_view_name": "OutputView",
      "layout": "IPY_MODEL_e025974fb9d942aea5ede94bac7e67ec",
      "msg_id": "",
      "outputs": [
       {
        "application/vnd.jupyter.widget-view+json": {
         "model_id": "8f41d6988ee5468db085d8f12e0f26ce",
         "version_major": 2,
         "version_minor": 0
        },
        "metadata": {
         "tags": []
        },
        "output_type": "display_data",
        "text/plain": "Image(value=b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIHDR\\x00\\x00\\x02\\x00\\x00\\x00\\x02\\x00\\x08\\x02\\x00\\x00\\x00{\\x1aC\\xa…"
       }
      ]
     }
    },
    "1919b0ebbf0e4d4eab463392f7e348f6": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "VBoxModel",
     "state": {
      "_dom_classes": [
       "widget-interact"
      ],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "VBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "VBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_c1a403b7221a40b7ae73dbfa0d669439",
       "IPY_MODEL_0fecd1b4858e4827ae8deba4bc3ea434"
      ],
      "layout": "IPY_MODEL_45b0b70669324f29b7c9705ab0736635"
     }
    },
    "25bc19637b4c400392bccdb0da77d633": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ImageModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ImageModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ImageView",
      "format": "png",
      "height": "128",
      "layout": "IPY_MODEL_dcf10ac13eba48c5a29f9e2f760f49c8",
      "width": "128"
     }
    },
    "375aca99f1964197aad08665bbb9f67f": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ImageModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ImageModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ImageView",
      "format": "png",
      "height": "128",
      "layout": "IPY_MODEL_b9eeb93a5c77443f8e7fbe19e0dc1e4b",
      "width": "128"
     }
    },
    "391c398647c743679e1e52c8b2cfcf97": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "39745ab9253c4cc7ac569998dd4dae82": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "3d5d3e0db6ed4315abd642b90a0abb42": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "4333d0195da54d5dba42f77e06f853fa": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "45060d71bd304e24b00fd62c5ce4e26d": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "45b0b70669324f29b7c9705ab0736635": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "56a3d958608a449da126db5ea7bc39cd": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "5c035f47c32540d3b72628c8e5fc4e4c": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "5fb541d5abf54d9d8e43756aa7485b3b": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "VBoxModel",
     "state": {
      "_dom_classes": [
       "widget-interact"
      ],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "VBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "VBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_721e1507f1fc4877bf69723d00ca2632",
       "IPY_MODEL_8ff72c9f24324d98b89bcb92160be0cf"
      ],
      "layout": "IPY_MODEL_6751eada61ec44ca9e32aa7e1f2f2e3c"
     }
    },
    "60a4a296af114763ab4c74f52259fda1": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "621c44f8a5444a109bd4cc3eddd8e463": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "630895e41d3848e8bb16f12ebd51af49": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "6751eada61ec44ca9e32aa7e1f2f2e3c": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "68167ad6308548dea9a81906a49ea6a5": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DropdownModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DropdownModel",
      "_options_labels": [
       "encoded_style",
       "fake_image",
       "image_lr",
       "input_semantics"
      ],
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "DropdownView",
      "description": "Visualize:",
      "description_tooltip": null,
      "disabled": false,
      "index": 1,
      "layout": "IPY_MODEL_45060d71bd304e24b00fd62c5ce4e26d",
      "style": "IPY_MODEL_eae639faf8804b11852b02d8eafda982"
     }
    },
    "721e1507f1fc4877bf69723d00ca2632": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DropdownModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DropdownModel",
      "_options_labels": [
       "encoded_style",
       "fake_image",
       "image_lr",
       "input_semantics"
      ],
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "DropdownView",
      "description": "Visualize:",
      "description_tooltip": null,
      "disabled": false,
      "index": 1,
      "layout": "IPY_MODEL_f79b8b692011486e965cf1fb20a79cf8",
      "style": "IPY_MODEL_5c035f47c32540d3b72628c8e5fc4e4c"
     }
    },
    "74a6c7723b6b4d06ba20f5f0f57bd4ae": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "VBoxModel",
     "state": {
      "_dom_classes": [
       "widget-interact"
      ],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "VBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "VBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_bb7c19e7ae1642b2b86b5485889486bf",
       "IPY_MODEL_9c9107b318fa4c8f84b2f735bb4c3ebc"
      ],
      "layout": "IPY_MODEL_ad91a21b1d3342b58cd6200f6000a004"
     }
    },
    "77f811206fcf404c9d9386210376d67d": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "789ca3a0912b4cb68c2ee06ae3e0e01f": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "VBoxModel",
     "state": {
      "_dom_classes": [
       "widget-interact"
      ],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "VBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "VBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_68167ad6308548dea9a81906a49ea6a5",
       "IPY_MODEL_0fa8da6ffbd448ce824a8af920ab5e6e"
      ],
      "layout": "IPY_MODEL_60a4a296af114763ab4c74f52259fda1"
     }
    },
    "7dddc5cff53f4ce39146f4983ee43241": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ImageModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ImageModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ImageView",
      "format": "png",
      "height": "512",
      "layout": "IPY_MODEL_f6642236117c469baf0c28539241abde",
      "width": "512"
     }
    },
    "801d1075a8344d3481e17986445f5d90": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "VBoxModel",
     "state": {
      "_dom_classes": [
       "widget-interact"
      ],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "VBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "VBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_ebc2aa2337eb4de19d4df912eba22dd1",
       "IPY_MODEL_9b60358e588e458e90e90d11b53cad1c"
      ],
      "layout": "IPY_MODEL_0e5be9f80fbc44b683847cb270241e77"
     }
    },
    "83dca1df83404472b3d78ab37ca1588a": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "8f41d6988ee5468db085d8f12e0f26ce": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ImageModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ImageModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ImageView",
      "format": "png",
      "height": "512",
      "layout": "IPY_MODEL_f8d612ccb544461388ba8f176d5615cf",
      "width": "512"
     }
    },
    "8ff72c9f24324d98b89bcb92160be0cf": {
     "model_module": "@jupyter-widgets/output",
     "model_name": "OutputModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/output",
      "_model_module_version": "1.0.0",
      "_model_name": "OutputModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/output",
      "_view_module_version": "1.0.0",
      "_view_name": "OutputView",
      "layout": "IPY_MODEL_39745ab9253c4cc7ac569998dd4dae82",
      "msg_id": "",
      "outputs": [
       {
        "application/vnd.jupyter.widget-view+json": {
         "model_id": "e547e306493f4741a8db9d22843cee8f",
         "version_major": 2,
         "version_minor": 0
        },
        "metadata": {
         "tags": []
        },
        "output_type": "display_data",
        "text/plain": "Image(value=b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIHDR\\x00\\x00\\x00\\x80\\x00\\x00\\x00\\x80\\x08\\x02\\x00\\x00\\x00L\\\\\\xf6\\x…"
       }
      ]
     }
    },
    "91993136f8404d77a672611dda44a4d8": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "92b1b1d26a834ea79635b556712b50ec": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "9b60358e588e458e90e90d11b53cad1c": {
     "model_module": "@jupyter-widgets/output",
     "model_name": "OutputModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/output",
      "_model_module_version": "1.0.0",
      "_model_name": "OutputModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/output",
      "_view_module_version": "1.0.0",
      "_view_name": "OutputView",
      "layout": "IPY_MODEL_91993136f8404d77a672611dda44a4d8",
      "msg_id": "",
      "outputs": [
       {
        "application/vnd.jupyter.widget-view+json": {
         "model_id": "b7e8e754511443fca9ba5a9a2ca60c89",
         "version_major": 2,
         "version_minor": 0
        },
        "metadata": {
         "tags": []
        },
        "output_type": "display_data",
        "text/plain": "Image(value=b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIHDR\\x00\\x00\\x02\\x00\\x00\\x00\\x02\\x00\\x08\\x02\\x00\\x00\\x00{\\x1aC\\xa…"
       }
      ]
     }
    },
    "9ba4ab36ce4b4f958d415e42fbf8df08": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "9ba5cf95da744e9d9d679176d5b4bf0b": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "VBoxModel",
     "state": {
      "_dom_classes": [
       "widget-interact"
      ],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "VBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "VBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_fd6bbb1fbe914f5786c2ad26f90c6abd",
       "IPY_MODEL_b476efa801764c0b9462a1fcf7a9a9b1"
      ],
      "layout": "IPY_MODEL_56a3d958608a449da126db5ea7bc39cd"
     }
    },
    "9c9107b318fa4c8f84b2f735bb4c3ebc": {
     "model_module": "@jupyter-widgets/output",
     "model_name": "OutputModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/output",
      "_model_module_version": "1.0.0",
      "_model_name": "OutputModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/output",
      "_view_module_version": "1.0.0",
      "_view_name": "OutputView",
      "layout": "IPY_MODEL_dcc9084313384a9882917f7b988d5c49",
      "msg_id": "",
      "outputs": [
       {
        "application/vnd.jupyter.widget-view+json": {
         "model_id": "25bc19637b4c400392bccdb0da77d633",
         "version_major": 2,
         "version_minor": 0
        },
        "metadata": {
         "tags": []
        },
        "output_type": "display_data",
        "text/plain": "Image(value=b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIHDR\\x00\\x00\\x00\\x80\\x00\\x00\\x00\\x80\\x08\\x02\\x00\\x00\\x00L\\\\\\xf6\\x…"
       }
      ]
     }
    },
    "aba0b0b75af642b1b4242aa9a850d344": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "ad91a21b1d3342b58cd6200f6000a004": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "b476efa801764c0b9462a1fcf7a9a9b1": {
     "model_module": "@jupyter-widgets/output",
     "model_name": "OutputModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/output",
      "_model_module_version": "1.0.0",
      "_model_name": "OutputModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/output",
      "_view_module_version": "1.0.0",
      "_view_name": "OutputView",
      "layout": "IPY_MODEL_621c44f8a5444a109bd4cc3eddd8e463",
      "msg_id": "",
      "outputs": [
       {
        "application/vnd.jupyter.widget-view+json": {
         "model_id": "7dddc5cff53f4ce39146f4983ee43241",
         "version_major": 2,
         "version_minor": 0
        },
        "metadata": {
         "tags": []
        },
        "output_type": "display_data",
        "text/plain": "Image(value=b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIHDR\\x00\\x00\\x02\\x00\\x00\\x00\\x02\\x00\\x08\\x02\\x00\\x00\\x00{\\x1aC\\xa…"
       }
      ]
     }
    },
    "b7e8e754511443fca9ba5a9a2ca60c89": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ImageModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ImageModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ImageView",
      "format": "png",
      "height": "512",
      "layout": "IPY_MODEL_3d5d3e0db6ed4315abd642b90a0abb42",
      "width": "512"
     }
    },
    "b9eeb93a5c77443f8e7fbe19e0dc1e4b": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "bb7c19e7ae1642b2b86b5485889486bf": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DropdownModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DropdownModel",
      "_options_labels": [
       "encoded_style",
       "fake_image",
       "image_lr",
       "input_semantics"
      ],
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "DropdownView",
      "description": "Visualize:",
      "description_tooltip": null,
      "disabled": false,
      "index": 1,
      "layout": "IPY_MODEL_92b1b1d26a834ea79635b556712b50ec",
      "style": "IPY_MODEL_83dca1df83404472b3d78ab37ca1588a"
     }
    },
    "c1a403b7221a40b7ae73dbfa0d669439": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DropdownModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DropdownModel",
      "_options_labels": [
       "encoded_style",
       "fake_image",
       "image_lr",
       "input_semantics"
      ],
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "DropdownView",
      "description": "Visualize:",
      "description_tooltip": null,
      "disabled": false,
      "index": 1,
      "layout": "IPY_MODEL_9ba4ab36ce4b4f958d415e42fbf8df08",
      "style": "IPY_MODEL_aba0b0b75af642b1b4242aa9a850d344"
     }
    },
    "c319d32dbfc54b7e978492c8785eaaf5": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "dcc9084313384a9882917f7b988d5c49": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "dcf10ac13eba48c5a29f9e2f760f49c8": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "e025974fb9d942aea5ede94bac7e67ec": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "e547e306493f4741a8db9d22843cee8f": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ImageModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ImageModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ImageView",
      "format": "png",
      "height": "128",
      "layout": "IPY_MODEL_630895e41d3848e8bb16f12ebd51af49",
      "width": "128"
     }
    },
    "eae639faf8804b11852b02d8eafda982": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "ebc2aa2337eb4de19d4df912eba22dd1": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DropdownModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DropdownModel",
      "_options_labels": [
       "encoded_style",
       "fake_image",
       "image_lr",
       "input_semantics"
      ],
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "DropdownView",
      "description": "Visualize:",
      "description_tooltip": null,
      "disabled": false,
      "index": 1,
      "layout": "IPY_MODEL_019473d6a8c44fd8981948d0e0659317",
      "style": "IPY_MODEL_4333d0195da54d5dba42f77e06f853fa"
     }
    },
    "f6642236117c469baf0c28539241abde": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "f79b8b692011486e965cf1fb20a79cf8": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "f8d612ccb544461388ba8f176d5615cf": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "fd6bbb1fbe914f5786c2ad26f90c6abd": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DropdownModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DropdownModel",
      "_options_labels": [
       "encoded_style",
       "fake_image",
       "image_lr",
       "input_semantics"
      ],
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "DropdownView",
      "description": "Visualize:",
      "description_tooltip": null,
      "disabled": false,
      "index": 1,
      "layout": "IPY_MODEL_391c398647c743679e1e52c8b2cfcf97",
      "style": "IPY_MODEL_c319d32dbfc54b7e978492c8785eaaf5"
     }
    }
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
